<?php
/**
 * Description of moduloclass
 *
 * @author del Valle, Federico <quaidy@gmail.com>
 */


 //TODO: ve rel tema de q si asigno un template con el mismo nombre que un parametro
 //TODO: comprobar integridad de todo
class modulo {
  /**
   *
   * @var template
   */
  protected $template;
  protected $modulos = array(); //TODO pàra acople

  /**
   * Setea el template principal del modulo
   * 
   * @param mixed $template template o nombre del template
   */
  public function set_template($template) {
    if (is_object($template)) {
      
      $this->template = $template;
    } else {
      if ($template != "" && is_string($template)) {
        $this->template = new template($template);
      } else {
        $this->template = "";
      }
    }
  }
  

  /**
   * Imprime en pantalla el tpl del modulo
   */
  protected function mostrar() {
    $this->template->mostrar();
  }

  public function get_template() {
    return $this->template;
  }

  public function __construct($template = "") {
     $this->set_template($template);
  }

  /**
   * Get de parametros de los templates
   * 
   * @param string $name parametro
   * @return mixed
   */
  protected function get($name) {
    $this->template->set_paramtro($nombre, $valor);
  }

  /**
   * Setea un parametro del template
   *
   * @param string $name nombre del parametro
   * @param string $value valor del parametro
   * @@param string $tpl_key clave del template al cual se le va a agregar 
   */
  public function asignar($name,$value,$tpl_key="") {
      $this->template->asignar($name, $value,$tpl_key);
  }

  /**
   * Agrega un template a la lista de parseo
   *
   * @param string $template Nombre del template
   * @param string $key Nombre por el cual se lo va a conocer al template (necesario para eliminarlo)
   * @@param bool es_html si el template es contenido en html
   */
  protected function agregar_Template($template,$key,$es_html=false) {
    $this->template->agregar($key, $template,$es_html);
  }

  /**
   * Elimina un template de la lista
   * @param <type> $key
   */
  protected function eliminar_Template($key) {
    $this->template->elimina_template($key);
  }

  protected function procesar(){
  }

  /**
   * Devuelve el html ya parseado
   *
   * @return html
   */
  public function get_html() {
    return $this->template->get_html();
  }
}
?>
